The present technology generally relates to devices for performing congestion management, and more particularly, to devices for performing congestion management at a second or a data link layer of a computer network.
A computer network typically includes multiple computers (“end nodes”) that communicatively couple with one or more networking nodes or devices (collectively “interconnect nodes”). These interconnect nodes, in turn, communicatively couple together to facilitate communication of data traffic among such end nodes. Generally, the interconnect nodes are or include switches, bridges and the like.
At times, the computer network may suffer from congestion caused due to a given interconnect node (“congested node”) being unable to send more data traffic than it receives. Typically, the congested node along with the interconnect nodes that communicatively with the congested nodes (“congestion-affected nodes”) attempt to redress the congestion in two ways. The congested node and the congested-affected nodes may redress the congestion by (i) dropping one or more of packets of the data traffic or (ii) slowing down their rates of delivery of the data traffic to prevent packet loss. The congested node and the congestion-affected nodes may use various strategies for dropping packets, including, for example, tail-drop or Random Early Detection (“RED”). Dropping packets, however, may degrade performance of applications that rely on them because any packet dropped has to be re-transmitted after a timeout occurs.
In addition to or instead of dropping packets, the congested node and the congestion-affected nodes may employ flow control. To facilitate the flow control, the congested node may send one or more messages (“flow-control messages”), such as PAUSE messages, to the congestion-affected nodes to cause them to slow down delivery of the data traffic. Responsive to the flow-control messages, each of the congestion-affected nodes typically slow down delivery of the data traffic significantly. Because the slow down of each of the congestion-affected nodes, spreads to other interconnect nodes, the congestion affecting the congested node effectively spreads through the entire computer network.